package com.hup.minicontroller.common.bluetooth.framework;

import com.hup.minicontroller.common.bluetooth.model.BaseBtDataPacket;

import java.io.IOException;
import java.util.Iterator;

/**
 * 蓝牙模块基础功能处理器;实现如:登陆认证,心跳机制功能
 *
 * @author hugan
 * @date 2021/5/14
 */
public interface BtBaseFunctionHandler {

    default void onChannelActive(BtChannel btChannel) {}

    /**
     * 处理数据
     *
     * @param data 输入数据
     * @param it 用于在reader列表中移除自身;目前仅用在登陆认证Reader中
     * @return 输出数据;null-代表数据已被消费,不需要往下传递
     */
    BaseBtDataPacket onReceived(BtChannel btChannel, BaseBtDataPacket data, Iterator<BtBaseFunctionHandler> it) throws IOException;
}
